/**
 * @version 3.0.4
 * @Author lu-ch
 * @Email webwork.s@qq.com
 * 文档: https://www.quanzhan.co/luch-request/
 * github: https://github.com/lei-mu/luch-request
 * DCloud: http://ext.dcloud.net.cn/plugin?id=392
 * HBuilderX: beat-2.7.14 alpha-2.8.0
 */
import Request from '@/utils/luch-request/index.js'
import URL from './baseURL.js'
//flag=false表示session过期没提示过
let flag = false


const http2 = new Request()
http2.setConfig((config) => { /* 设置全局配置 */


	// if (process.env.NODE_ENV === 'development') {
	// 	config.baseURL = "http://lsc.langmy.com:7001/api/v1/"
	// } else {
		// config.baseURL = "https://smart-cloud.langmy.com/api/v1/"
	// }

	// config.baseURL = 'http://lsc.langmy.com:7001/api/v1/'
	// config.baseURL = 'https://smart-cloud.langmy.com/api/v1/'
	config.baseURL = URL + '/api/v2/'
	// config.baseURL = 'http://ajl-hat-test.langmy.com:7028/api/v1/'
	// config.baseURL = 'http://ajl-hat-test.langmy.com:7015/api/v1/'
	config.header = {
		...config.header
	}
	return config
})


http2.interceptors.request.use((config) => { /* 请求之前拦截器。可以使用async await 做异步操作 */
	config.header.sessionkey = uni.getStorageSync('Sessionkey')
	/*
 if (!token) { // 如果token不存在，return Promise.reject(config) 会取消本次请求
   return Promise.reject(config)
 }
 */
	return config
}, (config) => {
	return Promise.reject(config)
})


http2.interceptors.response.use(async (response) => { /* 请求之后拦截器。可以使用async await 做异步操作  */
	// if (response.data.code !== 200) { // 服务端返回的状态码不等于200，则reject()
	//   return Promise.reject(response)
	// }
	uni.hideLoading()
	if ([40017, 40018, 40019].includes(response.data.code)) {
		// uni.navigateTo({
		// 	url: '../verify/verify'
		// })
		// uni.navigateTo({
		// 	url: '/pages/login/login'
		// })
		if (!flag) {
			flag = true
			uni.showModal({
				title: '提示',
				content: '登录状态已过期,请重新登录',
				showCancel: false,
				success: function(res) {
					if (res.confirm) {
						flag = false
						uni.clearStorageSync()
						uni.navigateTo({
							url: '/pages/login/login'
						})
					}
				}
			});
		}
	} else if (response.data.code === 40004) {
		uni.showToast({
			title: response.data.msg,
			icon: 'none'
		})
	}
	// else if((response.data.code+'').indexOf('5')==0) {
	//  uni.showToast({
	//  	title: response.data.msg,
	//  	icon: 'none'
	//  })
	// } 
	if (response.header.Sessionkey) {
		flag = false
		uni.setStorageSync('Sessionkey', response.header.Sessionkey)
	}
	// console.dir(response)
	return response.data
}, (response) => { // 请求错误做点什么。可以使用async await 做异步操作
	console.log(response)
	return Promise.reject(response.data)
})

export {
	http2
}
